/**
 * <copyright>
 * </copyright>
 *

 */
package ms.unicorn.language.languagedef;

import org.eclipse.emf.common.util.EList;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Element Def</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link ms.unicorn.language.languagedef.ElementDef#isInherited <em>Inherited</em>}</li>
 *   <li>{@link ms.unicorn.language.languagedef.ElementDef#getText <em>Text</em>}</li>
 *   <li>{@link ms.unicorn.language.languagedef.ElementDef#getSmallImage <em>Small Image</em>}</li>
 *   <li>{@link ms.unicorn.language.languagedef.ElementDef#getLargeImage <em>Large Image</em>}</li>
 *   <li>{@link ms.unicorn.language.languagedef.ElementDef#getFigureParams <em>Figure Params</em>}</li>
 *   <li>{@link ms.unicorn.language.languagedef.ElementDef#getFigure <em>Figure</em>}</li>
 *   <li>{@link ms.unicorn.language.languagedef.ElementDef#getView <em>View</em>}</li>
 *   <li>{@link ms.unicorn.language.languagedef.ElementDef#getHelper <em>Helper</em>}</li>
 *   <li>{@link ms.unicorn.language.languagedef.ElementDef#getPolicies <em>Policies</em>}</li>
 *   <li>{@link ms.unicorn.language.languagedef.ElementDef#getTags <em>Tags</em>}</li>
 * </ul>
 * </p>
 *
 * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef()
 * @model
 * @generated
 */
public interface ElementDef extends ModuleItem
{
  /**
   * Returns the value of the '<em><b>Inherited</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Inherited</em>' attribute isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Inherited</em>' attribute.
   * @see #setInherited(boolean)
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef_Inherited()
   * @model
   * @generated
   */
  boolean isInherited();

  /**
   * Sets the value of the '{@link ms.unicorn.language.languagedef.ElementDef#isInherited <em>Inherited</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Inherited</em>' attribute.
   * @see #isInherited()
   * @generated
   */
  void setInherited(boolean value);

  /**
   * Returns the value of the '<em><b>Text</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Text</em>' attribute isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Text</em>' attribute.
   * @see #setText(String)
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef_Text()
   * @model
   * @generated
   */
  String getText();

  /**
   * Sets the value of the '{@link ms.unicorn.language.languagedef.ElementDef#getText <em>Text</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Text</em>' attribute.
   * @see #getText()
   * @generated
   */
  void setText(String value);

  /**
   * Returns the value of the '<em><b>Small Image</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Small Image</em>' attribute isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Small Image</em>' attribute.
   * @see #setSmallImage(String)
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef_SmallImage()
   * @model
   * @generated
   */
  String getSmallImage();

  /**
   * Sets the value of the '{@link ms.unicorn.language.languagedef.ElementDef#getSmallImage <em>Small Image</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Small Image</em>' attribute.
   * @see #getSmallImage()
   * @generated
   */
  void setSmallImage(String value);

  /**
   * Returns the value of the '<em><b>Large Image</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Large Image</em>' attribute isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Large Image</em>' attribute.
   * @see #setLargeImage(String)
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef_LargeImage()
   * @model
   * @generated
   */
  String getLargeImage();

  /**
   * Sets the value of the '{@link ms.unicorn.language.languagedef.ElementDef#getLargeImage <em>Large Image</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Large Image</em>' attribute.
   * @see #getLargeImage()
   * @generated
   */
  void setLargeImage(String value);

  /**
   * Returns the value of the '<em><b>Figure Params</b></em>' containment reference list.
   * The list contents are of type {@link ms.unicorn.language.languagedef.Parameter}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Figure Params</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Figure Params</em>' containment reference list.
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef_FigureParams()
   * @model containment="true"
   * @generated
   */
  EList<Parameter> getFigureParams();

  /**
   * Returns the value of the '<em><b>Figure</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Figure</em>' containment reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Figure</em>' containment reference.
   * @see #setFigure(XReferenceExpression)
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef_Figure()
   * @model containment="true"
   * @generated
   */
  XReferenceExpression getFigure();

  /**
   * Sets the value of the '{@link ms.unicorn.language.languagedef.ElementDef#getFigure <em>Figure</em>}' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Figure</em>' containment reference.
   * @see #getFigure()
   * @generated
   */
  void setFigure(XReferenceExpression value);

  /**
   * Returns the value of the '<em><b>View</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>View</em>' containment reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>View</em>' containment reference.
   * @see #setView(XReferenceExpression)
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef_View()
   * @model containment="true"
   * @generated
   */
  XReferenceExpression getView();

  /**
   * Sets the value of the '{@link ms.unicorn.language.languagedef.ElementDef#getView <em>View</em>}' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>View</em>' containment reference.
   * @see #getView()
   * @generated
   */
  void setView(XReferenceExpression value);

  /**
   * Returns the value of the '<em><b>Helper</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Helper</em>' attribute isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Helper</em>' attribute.
   * @see #setHelper(String)
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef_Helper()
   * @model
   * @generated
   */
  String getHelper();

  /**
   * Sets the value of the '{@link ms.unicorn.language.languagedef.ElementDef#getHelper <em>Helper</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Helper</em>' attribute.
   * @see #getHelper()
   * @generated
   */
  void setHelper(String value);

  /**
   * Returns the value of the '<em><b>Policies</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Policies</em>' containment reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Policies</em>' containment reference.
   * @see #setPolicies(Policies)
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef_Policies()
   * @model containment="true"
   * @generated
   */
  Policies getPolicies();

  /**
   * Sets the value of the '{@link ms.unicorn.language.languagedef.ElementDef#getPolicies <em>Policies</em>}' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Policies</em>' containment reference.
   * @see #getPolicies()
   * @generated
   */
  void setPolicies(Policies value);

  /**
   * Returns the value of the '<em><b>Tags</b></em>' containment reference list.
   * The list contents are of type {@link ms.unicorn.language.languagedef.TagDef}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Tags</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Tags</em>' containment reference list.
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#getElementDef_Tags()
   * @model containment="true"
   * @generated
   */
  EList<TagDef> getTags();

} // ElementDef
